package it.prova.xml;

import java.io.IOException;
import java.io.OutputStream;

import nu.xom.Serializer;
import nu.xom.Text;

public class MySerializer extends Serializer
{
	public MySerializer(OutputStream out)
	{
		super(out);
	}

	@Override
	protected void write(Text text) throws IOException
	{
		boolean specialFound = false, otherFound = false;
		for(int i=0; i<text.getValue().length(); i++)
		{
			char c = text.getValue().charAt(i);
			if
			(
				(c == '\n') || 
				(c == '\t')/* || 
				(c == ' ')*/
			)
			{
				specialFound = true;
			}
			else
			{
				otherFound = true;
			}
		}
		
		System.out.println("text.getValue() = " + text.getValue());
		
		if(!specialFound && otherFound)
		{
			writeRaw("<![CDATA[");
			writeRaw(text.getValue());
			writeRaw("]]>");
			
			System.out.println("CDATA");
		}
		else
		{
			System.out.println("NO CDATA");
		}
		
		
//		boolean match = Pattern.matches("[^\n&&[^\t]]", text.getValue());
//		System.out.println("match(" + text.getValue() + ") = " + match);
//		
//		if(match)
//		{
//			writeRaw("<![CDATA[");
//			writeRaw(text.getValue());
//			writeRaw("]]>");
//		}
//		else
//		{
//			
//		}
		
		
//		if
//		(
//			("\n\t".equals(text.getValue())) ||
//			("\n".equals(text.getValue()))
//		)
//		{
//			//super.write(text);
//		}
//		else
//		{
//			writeRaw("<![CDATA[");
//			writeRaw(text.getValue());
//			writeRaw("]]>");
//		}
	}	
}